1. Field of the Invention
The present invention relates to a stream data processing apparatus which performs multiple steps of processing for stream data. More particularly, the present invention relates to a stream data processing apparatus in which data is transmitted or received between a plurality of processing sections while achieving synchronization therebetween.
2. Description of the Related Art
Stream data processing apparatuses for performing multiple steps of processing stream data such as audio data or video data are known. A typical stream data processing apparatus comprises an input section, a processing section, and an output section, such that the processing section performs a predetermined process for inputted stream data, and outputs the processing results thus obtained. In many cases, a stream data processing apparatus performs a processing consisting of a plurality of steps for the inputted stream data. Accordingly, the stream data processing apparatus comprises a plurality of processing sections for executing the processes of the respective steps, and data is transmitted or received between such processing sections. Thus, the stream data processing apparatus executes multiple steps of processing in a pipeline manner for the inputted stream data. Sometimes instructions such as interruption of a process or a seek (i.e., commencing processing at a different position in a given stream of data which is being processed) may be given to the stream data processing apparatus. In order to ensure proper operation when receiving such instructions, the stream data processing apparatus performs exchange of data while achieving synchronization between the plurality of processing sections.
Japanese Patent No. 3095290 discloses a method, performed by a stream data processing apparatus, of exchanging data while achieving synchronization between a plurality of processing sections. According to this method, each processing section acquires via communications the state of another processing section with which it is exchanging data, and switches its own operation in accordance with the state of the other processing section. For example, when a seek instruction is given to the stream data processing apparatus, the processing section which is at the receiving end of data must postpone the receiving of data until the processing section at the transmitting end of data begins to transmit a processing result for the data corresponding to the new position. In order to realize such a function, each processing section controls its own operation so as not to read any improper data, in accordance with the content of the received data, the progress of the process, and the state of the other processing section. Thus, by properly exchanging data between a plurality of processing sections while achieving synchronization therebetween, the stream data processing apparatus can operate with a good overall integrity.
However, achieving synchronization between a plurality of processing sections using the above-described method has the following problems. Since each processing section needs to control its own operation in accordance with the data content, progress of the processing, and the state of another processing section, the structure of each processing section becomes complicated. When implementing each processing section in software, in particular, the structure of the software component constituting each processing section becomes complicated. Moreover, since a unified interface is not used between the respective processing sections in the above-described method, it is difficult to port the software component constituting each processing section into another system.